#ifndef __SPACE_GAME_SCREEN_HPP__
#define __SPACE_GAME_SCREEN_HPP__

#include "Screen.hpp"
#include "../ShadowMapping/ShadowMapFBO.hpp"
#include "../Extensions/ExtensionsLoader.hpp"
#include "../Entities/Sprite.hpp"
#include "../Entities/AnimatedSprite.hpp"

class CameraObject;
class GameLevel;

class SpaceGameScreen : public Screen, public ShadowMapFBO
{
public:

	/**
	  * Constructor.
	  */
	SpaceGameScreen();

	/**
	  * Destructor.
	  */
	~SpaceGameScreen();

	/**
	  * This method creates all entities which are presented on the screen.
	  * @return true if initialization went OK.
	  */
	bool InitializeEntities();

	/**
	  * Destroy all entities
	  * @return true if everything went OK.
	  */
	bool CleanUpEntities();
	
	// for debug
	GLhandleARB      m_shader;
private:
	CameraObject     *m_camera;
	AnimatedSprite   *m_player;
	GameLevel        *m_pLevel;
};

#endif //__SPACE_GAME_SCREEN_HPP__

//EOF
